Improve packet dumps when debugging.
authorrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Tue, 31 Aug 2004 01:10:27 +0000 (01:10 +0000)
committerrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Tue, 31 Aug 2004 01:10:27 +0000 (01:10 +0000)
gpsbabel/jeeps/gpsapp.c
gpsbabel/jeeps/gpsapp.h
gpsbabel/jeeps/gpsread.c
gpsbabel/jeeps/gpssend.c

index 5f8617a9335f8702b943e2e48bfc2eff465ddeea..594d60e093e0bde381311dc0cfb906cc4a618df0 100644 (file)
@@ -5604,13 +5604,31 @@ void GPS_D800_Get(GPS_PPacket packet, GPS_PPvt_Data *pvt)
  */
 
 const char *
-Get_Pkt_Type(unsigned char p)
+Get_Pkt_Type(unsigned char p, unsigned char d0, const char **xinfo)
 {
+       *xinfo = NULL;
 #define LT LINK_ID[gps_link_type]
        if (p == LT.Pid_Ack_Byte)
                return "ACK";
-       if (p == LT.Pid_Command_Data)
+       if (p == LT.Pid_Command_Data) {
+               switch (d0) {
+                       case 0: *xinfo = "Abort"; break;
+                       case 1: *xinfo = "Xfer Alm"; break;
+                       case 2: *xinfo = "Xfer Posn"; break;
+                       case 3: *xinfo = "Xfer Prx"; break;
+                       case 4: *xinfo = "Xfer Rte"; break;
+                       case 5: *xinfo = "Xfer Time"; break;
+                       case 6: *xinfo = "Xfer Trk"; break;
+                       case 7: *xinfo = "Xfer Wpt"; break;
+                       case 8: *xinfo = "Power Down"; break;
+                       case 49: *xinfo = "Xfer PVT Start"; break;
+                       case 50: *xinfo = "Xfer PVT Stop"; break;
+                       case 92: *xinfo = "Flight Records"; break;
+                       case 117: *xinfo = "Xfer Laps"; break;
+                       default: *xinfo = "Unknown";
+               }
                return "CMDDAT";
+       }
        if (p == LT.Pid_Xfer_Cmplt)
                return "XFRCMP";
        if (p == LT.Pid_Date_Time_Data)
index 1ceecaef59dd449879b3dcdd6f6b167564786176..4d042f3590d8d634d8bdf9a99508863e08db522c 100644 (file)
@@ -53,6 +53,7 @@ int32  GPS_A800_Off(const char *port, int32 *fd);
 int32  GPS_A800_Get(int32 *fd, GPS_PPvt_Data *packet);
 void   GPS_D800_Get(GPS_PPacket packet, GPS_PPvt_Data *pvt);
 
+const char * Get_Pkt_Type(unsigned char p, unsigned char d0, const char **xinfo);
 
 
 #endif
index a2b82dbb4c35845720d6b78837e9491e54daa80c..6f9004eb3058be78e91fc023752fd5334ca315dd 100644 (file)
@@ -76,13 +76,15 @@ int32 GPS_Packet_Read(int32 fd, GPS_PPacket *packet)
     UC     *p;
     int32  i;
     UC     chk=0;
+    const char *m1;
+    const char *m2;
     
     len = 0;
     isDLE = gpsFalse;
     p = (*packet)->data;
     
     start = GPS_Time_Now();
-    GPS_Diag("\nRx Data:");
+    GPS_Diag("Rx Data:");
     while(GPS_Time_Now() < start+GPS_TIME_OUT)
     {
        if((n=GPS_Serial_Chars_Ready(fd)))
@@ -158,6 +160,8 @@ int32 GPS_Packet_Read(int32 fd, GPS_PPacket *packet)
                        return 0;
                    }
                    
+                   m1 = Get_Pkt_Type((*packet)->type, (*packet)->data[0], &m2);
+                   GPS_Diag("(%-8s%s)\n", m1, m2 ? m2 : "");
                    return (*packet)->n;
                }
                
index bad9ccfc1e85d5343a320f6acb6b36592c5c615a..fce480cb25820b5a470d5bafd6b41c7bcbe793ef 100644 (file)
@@ -124,6 +124,7 @@ DiagS(void *buf, size_t sz)
 int32 GPS_Write_Packet(int32 fd, GPS_PPacket packet)
 {
     size_t ret;
+    const char *m1, *m2;
 
     GPS_Diag("Tx Data:");
     Diag(&packet->dle, 3);    
@@ -158,7 +159,8 @@ int32 GPS_Write_Packet(int32 fd, GPS_PPacket packet)
     GPS_Diag(": ");
     DiagS(packet->data, packet->bytes);
     DiagS(&packet->chk, 3);
-    GPS_Diag("(%-8s)\n", Get_Pkt_Type(packet->type));
+    m1 = Get_Pkt_Type(packet->type, packet->data[0], &m2);
+    GPS_Diag("(%-8s%s)\n", m1, m2 ? m2 : "");
 
     if((ret=GPS_Serial_Write(fd,(const void *)&packet->chk,(size_t)3)) == -1)
     {